🔶章節:
🔹[開頭] 0:00
🔹[正規表達式介紹] 0:27
🔹[基本結構] 1:25
🔹[程式語言和工具應用] 1:44
🔹[正規表達式-基礎] 3:11
🔹[正規表達式-量詞] 4:00
🔹[正規表達式-比對練習] 5:16
🔹[preg_match()介紹&練習] 6:31
🔹[preg_match_all()介紹&練習] 7:50
🔹[preg_replace()介紹&練習] 9:05
🔹[ppreg_split()介紹&練習] 10:21
🔹[preg_quote()介紹&練習] 11:13
🔹[總結] 13:01
如果影片中不清楚,需要補充的地方我會再添加到這邊~
在許多程式語言和工具中都有廣泛的應用,例如 Python、JavaScript、Java、C#、Perl、grep、sed、aw、SQL 等等。
preg_match(pattern, subject, matches)
$pattern = "/\d{3}-\d{2,4}/";
$string = "Call me at 123-45";
$found = preg_match($pattern, $string);
// $found 將是 1,表示找到了匹配
preg_match_all(pattern, subject, matches, flags, offset)
$pattern = "/\d{2}/";
$string = "123 apples and 45 bananas";
$found = preg_match_all($pattern, $string, $matches);
// $matches 將包含所有匹配的數字,如 [0] => ["12", "45"]
preg_replace(pattern, replacement, subject, limit, count)
$pattern = "/apple/";
$replacement = "banana";
$string = "I have an apple.";
$newString = preg_replace($pattern, $replacement, $string);
// $newString 將是 "I have an banana."
preg_split(pattern, subject, limit, flags)
$pattern = "/[\s,]+/";
$string = "Rina,Brian,Coco";
$array = preg_split($pattern, $string);
// $array 將包含 ["Rina", "Brian", "Coco"]
string preg_quote ( string $str [, string $delimiter = NULL ] )
$pattern = "/[a-z]+/";
$escaped_pattern = preg_quote($pattern);
echo "原始正則表達式:{$pattern}\n";
echo "轉義後的正則表達式:{$escaped_pattern}\n";
1. 避免特殊字符造成的錯誤匹配: 正則表達式中有些字符是具有特殊含義的,比如 . (匹配任意字符)、 (匹配零個或多個前一個字符)、+ (匹配一個或多個前一個字符),等等。如果目標字符串中包含這些特殊字符,且我們想要按照字面含義進行匹配,就需要對這些特殊字符進行轉義,避免造成不符合預期的匹配。
2. 增加正則表達式的動態性: 有時候,我們需要動態生成正則表達式,而這些正則表達式可能包含用戶輸入的內容。使用 preg_quote() 函數可以確保用戶輸入的字串在正則表達式中被視為字面含義,而不會被誤解為正則表達式的特殊字符。
假設我們想要從使用者輸入的文字中匹配含有特定關鍵字的句子。使用者可能會輸入含有正則表達式特殊字符的關鍵字,這時我們需要使用 preg_quote() 函數來轉義這些關鍵字,以保證正確匹配。
(以下舉例)
<?php
// 使用者輸入的關鍵字,假設使用者輸入的是 ".*test"
$user_input_keyword = ".*test";
// 將使用者輸入的關鍵字進行轉義
$escaped_keyword = preg_quote($user_input_keyword);
// 原始正則表達式,我們想要匹配以關鍵字開頭的句子
$pattern = "/^{$escaped_keyword}/i";
// 假設目標字符串是 "This is a test sentence."
$target_string = "This is a test sentence.";
// 進行正則表達式匹配
if (preg_match($pattern, $target_string)) {
echo "目標字符串符合正則表達式。";
} else {
echo "目標字符串不符合正則表達式。";
}
?>
/*
在這個例子中,假設使用者輸入了 ".*test" 作為關鍵字,
我們使用 preg_quote() 函數將特殊字符 .* 進行了轉義,
得到了 "\\.\\*test"。
這樣我們就可以確保正則表達式按照字面含義進行匹配,
而不會受到 .* 的特殊含義的影響。
*/
感謝觀看!